package atguigu.jihekuangjia;

import java.util.*;

public class ListTest {

	
	
	/**
	 * List接口是一个有序的 Collection，
	 * 使用此接口能够精确的控制每个元素插入的位置，
	 * 能够通过索引(元素在List中位置，类似于数组的下标)来访问List中的元素，
	 * 第一个元素的索引为 0，而且允许有相同的元素。
	 * List 接口存储一组不唯一，有序（插入顺序）的对象。
	 * @param args
	 * 
	 * 有序，但是可以重复
	 * 
	 * Arraylist 查找快，插入慢
	 * LinkedList 插入块，查找慢
	 */
	public static void main(String[] args) {
		
//		List<Integer> list = new ArrayList<Integer>();
//
//		list.add(15);
//		list.add(32);
//		list.add(52);
//		list.add(67);
//		list.add(22);
//		list.add(41);
//		list.add(null);
		
//		for (Integer integer : list) {
//			System.out.println(integer);
//		}
		
//		Iterator<Integer> iterator = list.iterator();
		
//		while (iterator.hasNext()) {
//			Integer next = iterator.next();
//			System.out.println(next);
//		}
		
//		List<Integer> llList = new LinkedList<Integer>();
//		llList.add(1);
//		llList.add(3);
//		llList.add(4);
//		llList.add(5);
//		llList.add(6);
//		llList.add(2);
//
//
//		for (Integer integer : llList) {
//			System.out.println(integer);
//		}
//
//		// 和ArrayList类似，就是可以用于多线程，方法是同步的。
//		Vector<Integer> vector = new Vector<Integer>();
		
		test();
	}

	/**
	 * 测试在ArrayList循环的时候，进行添加删除操作
	 */
	public static void test(){
		List<Integer> list = new ArrayList<>();
		list.add(2);
		list.add(3);
		list.add(4);

		for (int i = 0; i < list.size(); i++) {
			list.add(10);
			list.remove(0);
		}
	}
}
